package com.huang.wangpan.strategy;

import com.huang.wangpan.configure.SpringContextUtils;
import org.springframework.stereotype.Component;

@Component
public class StrategyConfig {

    //通过反射得到不同的对象
    public <T> T getBean(String method) {
        MethodEnum[] values = MethodEnum.values();
        if (values != null && values.length > 0) {
            for (MethodEnum value : values) {
                try {
                    // 注意此处字符串不能直接==比较
                    if (method == value.getMethod() || method.equals(value.getMethod())) {
                        Class clazz = Class.forName(value.getClassName());
                        // 此处根据类从上下文获取类的对象
                        T t = (T) SpringContextUtils.getBean(clazz);
                        return t;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }
}